/* 基于 axios 封装的请求模块 */
import axios from 'axios'

//非组件模块加载使用提示
import {
  Message
} from 'element-ui';

//创建一个axios实例，就是复制了一个 axios 我们通过这个实例去发送请求，把需要的配置给这个实例来处理
const request = axios.create({
  baseURL: 'http://47.103.33.122:8180/' //请求的基础路径
  // baseURL: 'http://10.32.57.248:8180/' //请求的基础路径
})

// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  //config是当前请求的相关配置信息对象
  //config是可以修改的
  const user = JSON.parse(window.localStorage.getItem('USER_KEY'))
  if (user) {
    config.headers.token = user.token
  }

  //return之后请求才会真正发出去
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

//响应拦截器
request.interceptors.response.use(function (response) {
  // const res = response.data //对所有响应的数据进行初次处理
  // 对响应数据做点什么
  if (response.data.code === 20000) {
    return response
  } else if (response.data.code === 22000) {
    Message.warning(response.data.message)
    window.location.href = '/'
  } else {
    Message.warning(response.data.message)
    return Promise.reject(response.data.message)
  }
}, function (error) {

  // 对响应错误做点什么

  return Promise.reject(error);
});
//导出请求方法
export default request